package com.steel.yfmall.cloud.assistant.view;


import com.steel.yfmall.cloud.assistant.dto.para.view.ParaPostalCodeBean;
import com.steel.yfmall.cloud.assistant.dto.zg.ZgViewBean;
import com.steel.yfmall.cloud.assistant.po.view.PostalCodeBean;
import com.steel.yfmall.cloud.components.utils.base.APIMsgBean;
import com.steel.yfmall.cloud.components.utils.base.Pages;

import java.util.List;

/**
 * 查询省市县邮政编码 业务接口
 *
 * @author jia chang bao
 * @date 2020/11/9 13:43
 */
public interface PostalCodeBeanService {
    /**
     * @param paraPostalCodeBean 查询省市县邮政编码业务条件
     * @return int 总条数
     * @Description 获取查询省市县邮政编码表总条数, 可以有条件或无条件
     * @author jia chang bao
     * @date 2020/11/5 9:42
     */
    long getPostalCodeCount(ParaPostalCodeBean paraPostalCodeBean);

    /**
     * @param paraPostalCodeBean 查询省市县邮政编码业务条件
     * @return List<PostalCodeBean> 分页结果集合
     * @Description 根据条件分页查询省市县邮政编码信息（分页）
     * @author jia chang bao
     * @date 2020/11/5 9:53
     */
    Pages<PostalCodeBean> getPostalCodeOfPage(ParaPostalCodeBean paraPostalCodeBean);

    /**
     * @param paraPostalCodeBean 查询省市县邮政编码业务条件
     * @return List<PostalCodeBean> 不分页结果集合
     * @Description 根据条件不分页查询终到地区信息（不分页）
     * @author jia chang bao
     * @date 2020/11/5 9:55
     */
    List<PostalCodeBean> getPostalCodeOfList(ParaPostalCodeBean paraPostalCodeBean);

    /**
     * @param postalCodeBean 省市县邮政编码业务条件
     * @return int 受影响行数
     * @Description 新增终到地区信息（单条新增）
     * @author jia chang bao
     * @date 2020/11/5 10:01
     */
    int addPostalCode(PostalCodeBean postalCodeBean);

    /**
     * @param postalCodeBeans 省市县邮政编码业务条件
     * @return int 受影响行数
     * @Description 批量新增终到地区信息（多条新增）
     * @author jia chang bao
     * @date 2020/11/5 10:02
     */
    int addPostalCodeOfList(List<PostalCodeBean> postalCodeBeans);

    /**
     * @param postalCodeBean 省市县邮政编码业务条件
     * @return int 受影响行数
     * @Description 根据条件修改省市县邮政编码
     * @author jia chang bao
     * @date 2020/11/5 10:12
     */
    int updatePostalCode(PostalCodeBean postalCodeBean);

    /**
     * @param paraPostalCodeBean 省市县邮政编码业务条件
     * @return int 受影响行数
     * @Description 根据条件删除省市县邮政编码
     * @author jia chang bao
     * @date 2020/11/5 10:13
     */
    int deletePostalCode(ParaPostalCodeBean paraPostalCodeBean);

    /**
     * @param paraPostalCodeBeans 省市县邮政编码业务条件
     * @return int 受影响行数
     * @Description 批量删除省市县邮政编码
     * @author jia chang bao
     * @date 2020/11/5 17:09
     */
    int deleteReachRegionOfList(List<ParaPostalCodeBean> paraPostalCodeBeans);

    /**
     * @return 同步成功信息数据
     * @Description 同步中冠省市县邮政编码信息
     * @author jia chang bao
     * @date 2020/11/5 15:28
     */
    APIMsgBean synchronizationZgPostalCode(ZgViewBean zgViewBean);
}
